package com.lry.basic.jvm.asm.transform_class.demo13;

public class MyClassLoader  extends ClassLoader {


    public void defineClass(String className,byte[] bytes){
        defineClass(className,bytes,0,bytes.length);
    }

    @Override
    public Class<?> loadClass(String name) throws ClassNotFoundException {
        //我们要热部署的代码已经被defineClass缓存起来,findLoadedClass都能找到,就不会走下面的双亲委派了
        Class<?> loadClass = findLoadedClass(name);
        //第一情况 这个类 不需要由我们加载
        //第二种情况 这个类需要由我们加载 但是 确实加载不到
        if(loadClass==null){
            loadClass = getSystemClassLoader().loadClass(name);
        }
        return loadClass;
    }

}

